﻿namespace IBTrader.Indicator.CandleStick
{
    using IBTrader.Charts;

    /// <summary>
    /// Der Commodity-Channel-Index (CCI) gehört wie der RSI zu der "Oszillatoren-Familie" und schwingt grundsätzlich zwischen den Extrembereichen von < -100 und > 100!
    /// Der im Jahre 1980 von Donald R. Lampert veröffentlichte Indikator vergleicht dabei den aktuellen Kurs mit einem gleitenden Durchschnitt. 
    /// Anschließend normalisiert er die Oszillatorenwerte durch einen Divisor, der auf der Standardabweichung basiert. 
    /// </summary>
    class CCI : Base
    {
        public CCI(Worker worker, int interval = 60, int pinterval = 20) : base(worker, new ChartArgs { Group = 1 }, interval, pinterval) { }
        protected override void Add(object _, Item item)
        {
            Prices.Add(item.Typical);
            OnHit(item.CloseLine, (item.Price - Prices.Average()) / .15f);
        }
    }
}
